#ifndef __PID_H__
#define __PID_H__
#include "bsp_system.h"
typedef struct
{
    float SetValue;     // 用户期望值，也就是我们期望系统调节到输出此值然后稳定在这一状态
    float pid_Calc_out; // PID计算输出结果值，用来驱动执行机构
    float error;        // 当前偏差值
    float error_last;   // 上一次计算的偏差值
    float error_pre;    // 上上一次计算的偏差值，在增量式里用到
    float Kp;           // 比例系数
    float Ki;           // 积分系数
    float Kd;           // 微分系数
    float integral;     // 积分值
	float integral_max;	// 积分限幅
} PID; 

extern PID JY62_PID;
extern PID sensor_track_PID;
extern PID Speed_PID;

void PID_Init(PID *pPID);
float PID_Calc(PID *pPID_Calc, float Next_val, float actual, uint8_t flag) ; // 位置式
float PID_Calc_Incremental(PID *pid, float actual);//增量式







#endif


